using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace Manaddiction
{
    /// <summary>
    /// 游戏数据加载器 - 负责初始化加载所有游戏数据
    /// </summary>
    public class DataLoader : MonoBehaviour
    {
        // 核心游戏数据引用
        public GameplayData data;      // 游戏玩法配置数据
        //public AssetData assets;       // 游戏资源资产数据

        private static DataLoader instance;  // 单例实例

        // 初始化方法
        void Awake()
        {
            instance = this;  // 设置单例实例
            LoadData();      // 加载游戏数据
        }

        /// <summary>
        /// 加载所有游戏数据
        /// 提示：为提高加载速度，可以在每个Load()函数中添加Resources文件夹的相对路径
        /// 例如 CardData.Load("Cards"); 只加载Resources/Cards文件夹中的数据
        /// </summary>
        public void LoadData()
        {
            // 加载各种游戏数据
            CardData.Load();       // 卡牌数据
            //TeamData.Load();       // 队伍数据
            //RarityData.Load();     // 稀有度数据
            //TraitData.Load();      // 特性数据
            //VariantData.Load();     // 变体数据
            //PackData.Load();       // 卡包数据
            //LevelData.Load();      // 等级数据
            //UserDeckData.Load();       // 卡组数据
            //AbilityData.Load();    // 能力数据
            //StatusData.Load();     // 状态数据
            //AvatarData.Load();     // 头像数据
            //CardbackData.Load();   // 卡背数据
        }

        /// <summary>
        /// 获取数据加载器单例实例
        /// </summary>
        public static DataLoader Get()
        {
            return instance;
        }
    }
}